package com.neuedu.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.neuedu.bean.CheckRequest;
import com.neuedu.bean.CheckRequestSub;
import com.neuedu.bean.Register;


public interface CheckRequestMapper extends BaseMapper<CheckRequest> {
	
	// 根据患者id得到医生开具的检查申请信息和检查项目信息
	List<Map<String,Object>> getCheckRequestAndTechnology(CheckRequest con);

	// 变更检查申请状态的方法
	// 第一个参数：检查申请项目的ID
	// 第二个参数：检查申请项目的状态
	int updateStateById(@Param("id") Integer id, @Param("state") String state);

	// 得到已经检查完成患者数量：检查状态为：已缴费、日期为：当前天数
	
	Integer getFinishCheckCount();

	// 得到当前医生排队患者数量：检查状态为：已缴费、日期为：当前天数
	Integer getWaitCheckCount(@Param("case_number") String case_number, @Param("real_name") String real_name);

	// 得到当前医生排队患者信息
	List<Register> getWaitCheck(@Param("case_number") String case_number,
			@Param("real_name") String real_name, @Param("cur") Integer cur,
			@Param("pageSize") Integer pageSize);

	// 修改数据，在对应id行添加check_employee_id
	int updataCheckPatient(@Param("id") String id, @Param("check_employee_id") String check_employee_id);

	// 完成检查患者信息(搜索、分页）检查状态为：执行完成
	List<Register> getFinishCheck(@Param("case_number") String case_number,
			@Param("real_name") String real_name, @Param("nowPageNumber") Integer nowPageNumber,
			@Param("pageSize") Integer pageSize);

	// 完成检查的患者数量(搜索、分页）检查状态为：执行完成
	Integer getFinishCheckCountNumber(@Param("case_number") String case_number, @Param("real_name") String real_name);

	// 根据患者id得到已经检查完成的检查项目
	List<CheckRequestSub> getFinishCheckByRegistid(String id);

	// 提交检查结果
	Integer updateCheckInput(@Param("id") String id, @Param("employee_id") String employee_id,
			@Param("check_result") String check_result);

	// 得到患者检查和医生检查医嘱数据，根据患者的id
	// 检查申请的id不可缺少，否则将来无法执行“开始检查”功能	
	List<CheckRequestSub> getCheckPatientTableByRegist(String registid);
	
	List<CheckRequestSub> getCheckPatientTableByRegistTwo(String registid);

}
